In a large computer system, protocol agents such as processors and memory communicate through an interconnect fabric. These communications can comprise transactions such as requests for data, returns of requested data, interrupts, and status updates. A “star” organization of such a fabric comprises endpoint nodes that communicate their transactions to a central switch complex that in turn routes the transactions to a targeted endpoint node. A “grid” organization of a fabric comprises communication from a node through a number of peer intermediate nodes and to the targeted destination node. In the grid, transactions can be routed between and through nodes, rather than requiring switches and dedicated links to the switches, in contrast to the “star” configuration.
Typical system fabrics can group communications into different flow control classes that allow transactions of different types to pass one another at system nodes. The system employs the flow control classes for the communications to avoid “deadlock” and/or “gridlock” conditions. A deadlock condition would exist in the system fabric if a first transaction could not be completed because the transaction is behind a second transaction that will not be accepted by a node until the first transaction has been completed.